package com.showsu.editor.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.showsu.editor.dao.TblXhsEditorTemplateTagsMapper;
import com.showsu.editor.entity.po.TblXhsEditorTemplateTags;
import com.showsu.editor.service.IXhsEditorTemplateTagsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author: William
 * @Description:
 * @Date: Created in 9:18 下午 2023/8/17
 * @Modified By:
 */
@Service
@Slf4j
public class XhsEditorTemplateTagsServiceImpl extends ServiceImpl<TblXhsEditorTemplateTagsMapper, TblXhsEditorTemplateTags> implements IXhsEditorTemplateTagsService {

    @Autowired
    private TblXhsEditorTemplateTagsMapper mapper;

    @Override
    public List<TblXhsEditorTemplateTags> queryBytagType(Integer tagType) {
        return mapper.selectList(new QueryWrapper<TblXhsEditorTemplateTags>().lambda()
                .eq(TblXhsEditorTemplateTags::getTagType,tagType)
                .orderByAsc(TblXhsEditorTemplateTags::getSort, TblXhsEditorTemplateTags::getId)
        );
    }

    @Override
    public List<TblXhsEditorTemplateTags> queryByParentId(Integer parentId) {
        if(parentId==null){
            return mapper.selectList(new QueryWrapper<TblXhsEditorTemplateTags>().lambda()
                    .isNull(TblXhsEditorTemplateTags::getParentId)
                    .orderByAsc(TblXhsEditorTemplateTags::getSort, TblXhsEditorTemplateTags::getId)
            );
        }
        return mapper.selectList(new QueryWrapper<TblXhsEditorTemplateTags>().lambda()
                .eq(TblXhsEditorTemplateTags::getParentId,parentId)
                .orderByAsc(TblXhsEditorTemplateTags::getSort, TblXhsEditorTemplateTags::getId)
        );
    }

    @Override
    public TblXhsEditorTemplateTags queryByParentIdAndName(Integer parentId, String name) {
        return mapper.selectOne(new QueryWrapper<TblXhsEditorTemplateTags>().lambda()
                .eq(TblXhsEditorTemplateTags::getParentId,parentId)
                .eq(TblXhsEditorTemplateTags::getName,name));
    }

    @Override
    public TblXhsEditorTemplateTags queryByName(String name) {
        return mapper.selectOne(new QueryWrapper<TblXhsEditorTemplateTags>().lambda()
                .isNull(TblXhsEditorTemplateTags::getParentId)
                .eq(TblXhsEditorTemplateTags::getName,name));
    }
}
